package com.smart.reader.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.smart.reader.common.Page;
import com.smart.reader.exception.CustomException;
import com.smart.reader.model.bo.SysUserInfoAddBo;
import com.smart.reader.model.bo.SysUserInfoUpdateBo;
import com.smart.reader.model.po.SysUserInfo;
import com.smart.reader.model.vo.SysUserInfoVo;

public interface SysUserInfoService extends IService<SysUserInfo> {
    /**
     * 新增⽤户信息
     *
     * @param sysUserInfo
     * @return
     * @throws CustomException
     */
    Boolean add(SysUserInfoAddBo sysUserInfo) throws CustomException;

    /**
     * 查询⽤户信息并分⻚
     *
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<SysUserInfoVo> queryInfo(int pageNum, int pageSize);

    /**
     * 根据ID删除⽤户信息
     *
     * @param id
     * @return
     * @throws CustomException
     */
    Boolean delete(Long id) throws CustomException;

    /**
     * 修改⽤户数据
     *
     * @param sysUserInfo
     * @return
     * @throws CustomException
     */
    Boolean edit(SysUserInfoUpdateBo sysUserInfo) throws CustomException;

    /**
     * 根据⽤户ID查询⽤户详情
     *
     * @param id
     * @return
     */
    SysUserInfoVo detail(Long id);
}